home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 46
/
Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso
/
-in_the_mag-
/
reader_requests
/
pdflib
/
bindings
/
perl
/
pdfclock.pl
< prev
next >
Wrap
Perl Script
|
1999-09-16
|
2KB
|
91 lines
#!/usr/bin/perl
# PDFlib client: pdfclock example in Perl
# (C) Thomas Merz 1998
use pdflib;
package pdflib;
$RADIUS = 200.0;
$MARGIN = 20.0;
$fp = fopen("pdfclock_perl.pdf", "w");
$ip = PDF_get_info();
$ip->{Creator} = "pdfclock.pl";
$ip->{Author} = "Thomas Merz";
$ip->{Title} = "PDF clock (Perl)";
$p = PDF_open($fp, $ip);
PDF_begin_page($p, 2 * ($RADIUS + $MARGIN), 2 * ($RADIUS + $MARGIN));
PDF_set_transition($p, $trans_wipe);
PDF_set_duration($p, 0.5);
PDF_translate($p, $RADIUS + $MARGIN, $RADIUS + $MARGIN);
PDF_setrgbcolor($p, 0.0, 0.0, 1.0);
PDF_save($p);
# minute strokes
PDF_setlinewidth($p, 2.0);
for ($alpha = 0; $alpha < 360; $alpha += 6)
{
PDF_rotate($p, 6.0);
PDF_moveto($p, $RADIUS, 0.0);
PDF_lineto($p, $RADIUS-$MARGIN/3, 0.0);
PDF_stroke($p);
}
PDF_restore($p);
PDF_save($p);
# 5 minute strokes
PDF_setlinewidth($p, 3.0);
for ($alpha = 0; $alpha < 360; $alpha += 30)
{
PDF_rotate($p, 30.0);
PDF_moveto($p, $RADIUS, 0.0);
PDF_lineto($p, $RADIUS-$MARGIN, 0.0);
PDF_stroke($p);
}
($tm_sec,$tm_min,$tm_hour) = localtime(time);
# draw hour hand
PDF_save($p);
PDF_rotate($p, (-(($tm_min/60.0) + $tm_hour - 3.0) * 30.0));
PDF_moveto($p, -$RADIUS/10, -$RADIUS/20);
PDF_lineto($p, $RADIUS/2, 0.0);
PDF_lineto($p, -$RADIUS/10, $RADIUS/20);
PDF_closepath($p);
PDF_fill($p);
PDF_restore($p);
# draw minute hand
PDF_save($p);
PDF_rotate($p, (-(($tm_sec/60.0) + $tm_min - 15.0) * 6.0));
PDF_moveto($p, -$RADIUS/10, -$RADIUS/20);
PDF_lineto($p, $RADIUS * 0.8, 0.0);
PDF_lineto($p, -$RADIUS/10, $RADIUS/20);
PDF_closepath($p);
PDF_fill($p);
PDF_restore($p);
# draw second hand
PDF_setrgbcolor($p, 1.0, 0.0, 0.0);
PDF_setlinewidth($p, 2);
PDF_save($p);
PDF_rotate($p, -(($tm_sec - 15.0) * 6.0));
PDF_moveto($p, -$RADIUS/5, 0.0);
PDF_lineto($p, $RADIUS, 0.0);
PDF_stroke($p);
PDF_restore($p);
# draw little circle at center
PDF_circle($p, 0, 0, $RADIUS/30);
PDF_fill($p);
PDF_restore($p);
PDF_end_page($p);
PDF_close($p);